# !/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
===========================
@Time : 2022/9/13 0013 22:29
@Author : 测试开发工程师
@File : 9. 管道使用.py
@Software: PyCharm
============================
"""

"""

程序运行环境输入与输出
    标准输入0  read a;echo $a
    标准输出1  echo ceshiren.com
    错误输出   ls not_exist_dir
    
管道重定向
    管道与管道之间可以重定向
    管道与文件之间可以重定向
        从文件读取： read a < /tmp/1
        写入文件：   echo 111 > /tmp/1
        将错误输出重定向文件： ls not_exist_dir > /tmp/output 2>&1
        
管道连接：
    程序的输出 -> 下一个程序的输入

管道连接符 |
    管道连接符 | 可以连接多个程序的执行  
        echo hogwarts | { read line;echo input is $line;}  ->  结果是 input is hogwarts
    管道连接是以子进程的方式启动的
    
管道执行的上下文控制
    使用{command;} 注意花括号与内部命令之间的空格与分号
    使用控制逻辑 while read 组合
    使用$()
    
    例如：
        echo hello world | read x;echo $x  无法获取变量
        echo hello world | { read x;echo $x; } 
        echo hello world | while read x;do echo $x;done 

"""